/*
 * Copyright 2000-2018. YGSoft.Inc All Rights Reserved.
 */

package com.wn.budget.code.context;

/**
 * 与请求相关的上下文属性
 *
 * @author zhouzhiming@ygsoft.com
 * @Time 2018/8/31 15:44
 */
public interface RequestProperty extends BaseContext {

    /**
     * 获取HTTP SessionID
     */
    default String getSessionID() {
        return (String) getRepository().get("SESSION_ID");
    }

    /**
     * 设置HTTP SessionID
     */
    default void setSessionID(String sessionID) {
        getRepository().put("SESSION_ID", sessionID);
    }

    /**
     * 获取HTTP Session创建时间
     */
    default long getCreateTime() {
        return (Long) getRepository().get("CREATE_TIME");
    }

    /**
     * 设置HTTP Session创建时间
     */
    default void setCreateTime(long createTime) {
        getRepository().put("CREATE_TIME", createTime);
    }

    /**
     * 获取HTTP Session创建时间
     */
    default long getLastAccessedTime() {
        return (Long) getRepository().get("LAST_ACCESSED_TIME");
    }

    /**
     * 设置HTTP Session最后访问时间
     */
    default void setLastAccessedTime(long lastAccessedTime) {
        getRepository().put("LAST_ACCESSED_TIME", lastAccessedTime);
    }

    /**
     * 获取请求访问地址
     */
    default String getRequestURI() {
        return (String) getRepository().get("REQUEST_URI");
    }

    /**
     * 设置请求访问地址
     */
    default void setRequestURI(String requestURI) {
        getRepository().put("REQUEST_URI", requestURI);
    }

    /**
     * 获取请求的客户端地址
     */
    default String getClientIP() {
        return (String) getRepository().get("CLIENT_IP");
    }

    /**
     * 设置请求的客户端地址
     */
    default void setClientIP(String clientIP) {
        getRepository().put("CLIENT_IP", clientIP);
    }

}
